package com.hiultra.archive.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hiultra.common.core.domain.entity.ArcCatalog;
import com.hiultra.common.core.domain.entity.ArcStorehouse;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hiultra.common.annotation.Excel;
import com.hiultra.common.core.domain.BaseEntity;

/**
 * 档案对象 arc_archive
 *
 * @author ls
 * @date 2022-07-30
 */
public class ArcArchive extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * 主键ID
     */
    private Long archiveId;

    /**
     * 全宗id
     */
    @Excel(name = "全宗id")
    private Integer familyId;

    /**
     * 盒号id
     */
    @Excel(name = "盒号id")
    private String boxId;

    /**
     * 卷宗号
     */
    @Excel(name = "卷宗号")
    private Integer dossierId;

    /**
     * 分类id
     */
    @Excel(name = "分类id")
    private Integer catalogId;

    /**
     * 库房id
     */
    @Excel(name = "库房id")
    private Integer storehouseId;

    /**
     * 档号
     */
    @Excel(name = "档号")
    private String archiveCode;

    /**
     * 文号
     */
    @Excel(name = "文号")
    private String fileCode;

    /**
     * 题名
     */
    @Excel(name = "题名")
    private String titleName;

    /**
     * 页号
     */
    @Excel(name = "页号")
    private String pageNos;

    /**
     * 年度
     */
    @Excel(name = "年度")
    private Integer year;

    /**
     * 保管年限
     */
    @Excel(name = "保管年限")
    private Integer saveYear;

    /**
     * 密级
     */
    @Excel(name = "密级")
    private Integer secretLevel;

    /**
     * 责任者
     */
    @Excel(name = "责任者")
    private String duty;

    /**
     * 机构或问题
     */
    @Excel(name = "机构或问题")
    private String matter;

    /**
     * 鉴定状态
     */
    @Excel(name = "鉴定状态")
    private Integer appraisal;

    /**
     * 借阅状态
     */
    @Excel(name = "借阅状态")
    private Integer borrowflag;

    /**
     * 档案状态
     */
    @Excel(name = "档案状态")
    private Integer status;

    /**
     * 删除
     */
    private Integer delflag;

    /**
     * 文件名
     */
    @Excel(name = "文件名")
    private String fileName;

    /**
     * 件号
     */
    @Excel(name = "件号")
    private Long pieceCode;

    /**
     * 添加时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "添加时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date addTime;

    /**
     * 是否利用
     */
    private Integer isUse;

    /**
     * 标签号
     */
    @Excel(name = "标签号")
    private String rfidcode;

    /**
     * 密集架id
     */
    @Excel(name = "密集架id")
    private Long shelvesId;

    /**
     * 密集架编号
     */
    @Excel(name = "密集架编号")
    private String shelvesCode;

    /**
     * 密集架名称
     */
    @Excel(name = "密集架名称")
    private String shelvesName;

    /**
     * 在架状态
     */
    @Excel(name = "在架状态")
    private Long shelvesStatus;

    /**
     * 层编号
     */
    @Excel(name = "层编号")
    private String shelvesLayerGrid;

    /**
     * 层名称
     */
    @Excel(name = "层名称")
    private String shelvesLayerGridName;

    /**
     * 是否续借
     */
    private Integer isRenew;

    /**
     * 借阅人
     */
    private String borrowUser;

    /**
     * 借阅人电话
     */
    private String userPhone;

    private String boxNo;
    private String bagNo;
    private String houseLocationNo;

    public String getBoxNo() {
        return boxNo;
    }

    public void setBoxNo(String boxNo) {
        this.boxNo = boxNo;
    }

    public String getBagNo() {
        return bagNo;
    }

    public void setBagNo(String bagNo) {
        this.bagNo = bagNo;
    }

    public String getHouseLocationNo() {
        return houseLocationNo;
    }

    public void setHouseLocationNo(String houseLocationNo) {
        this.houseLocationNo = houseLocationNo;
    }

    /**
     * 申请日期
     */
    private Date planBorrowDate;
    private ArcStorehouse storehouse;
    private ArcFamily family;
    private ArcCatalog catalog;
    private ArcBox box;
    private ArcDossier dossier;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expireTime;

    public Date getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(Date expireTime) {
        this.expireTime = expireTime;
    }

    public ArcDossier getDossier() {
        return dossier;
    }

    public void setDossier(ArcDossier dossier) {
        this.dossier = dossier;
    }

    public ArcBox getBox() {
        return box;
    }

    public void setBox(ArcBox box) {
        this.box = box;
    }

    public ArcFamily getFamily() {
        return family;
    }

    public void setFamily(ArcFamily family) {
        this.family = family;
    }

    public ArcCatalog getCatalog() {
        return catalog;
    }

    public void setCatalog(ArcCatalog catalog) {
        this.catalog = catalog;
    }

    public ArcStorehouse getStorehouse() {
        return storehouse;
    }

    public void setStorehouse(ArcStorehouse storehouse) {
        this.storehouse = storehouse;
    }

    public void setArchiveId(Long archiveId) {
        this.archiveId = archiveId;
    }

    public Long getArchiveId() {
        return archiveId;
    }

    public Integer getFamilyId() {
        return familyId;
    }

    public void setFamilyId(Integer familyId) {
        this.familyId = familyId;
    }

    public String getBoxId() {
        return boxId;
    }

    public void setBoxId(String boxId) {
        this.boxId = boxId;
    }

    public Integer getDossierId() {
        return dossierId;
    }

    public void setDossierId(Integer dossierId) {
        this.dossierId = dossierId;
    }

    public Integer getCatalogId() {
        return catalogId;
    }

    public void setCatalogId(Integer catalogId) {
        this.catalogId = catalogId;
    }

    public Integer getStorehouseId() {
        return storehouseId;
    }

    public void setStorehouseId(Integer storehouseId) {
        this.storehouseId = storehouseId;
    }

    public void setArchiveCode(String archiveCode) {
        this.archiveCode = archiveCode;
    }

    public String getArchiveCode() {
        return archiveCode;
    }

    public void setFileCode(String fileCode) {
        this.fileCode = fileCode;
    }

    public String getFileCode() {
        return fileCode;
    }

    public void setTitleName(String titleName) {
        this.titleName = titleName;
    }

    public String getTitleName() {
        return titleName;
    }

    public String getPageNos() {
        return pageNos;
    }

    public void setPageNos(String pageNos) {
        this.pageNos = pageNos;
    }

    public void setYear(Integer year) {
        this.year = year;
    }

    public Integer getYear() {
        return year;
    }

    public Integer getSaveYear() {
        return saveYear;
    }

    public void setSaveYear(Integer saveYear) {
        this.saveYear = saveYear;
    }

    public void setSecretLevel(Integer secretLevel) {
        this.secretLevel = secretLevel;
    }

    public Integer getSecretLevel() {
        return secretLevel;
    }

    public void setDuty(String duty) {
        this.duty = duty;
    }

    public String getDuty() {
        return duty;
    }

    public void setMatter(String matter) {
        this.matter = matter;
    }

    public String getMatter() {
        return matter;
    }

    public void setAppraisal(Integer appraisal) {
        this.appraisal = appraisal;
    }

    public Integer getAppraisal() {
        return appraisal;
    }

    public void setBorrowflag(Integer borrowflag) {
        this.borrowflag = borrowflag;
    }

    public Integer getBorrowflag() {
        return borrowflag;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public void setDelflag(Integer delflag) {
        this.delflag = delflag;
    }

    public Integer getDelflag() {
        return delflag;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getFileName() {
        return fileName;
    }

    public void setPieceCode(Long pieceCode) {
        this.pieceCode = pieceCode;
    }

    public Long getPieceCode() {
        return pieceCode;
    }

    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    public Date getAddTime() {
        return addTime;
    }

    public void setIsUse(Integer isUse) {
        this.isUse = isUse;
    }

    public Integer getIsUse() {
        return isUse;
    }

    public void setRfidcode(String rfidcode) {
        this.rfidcode = rfidcode;
    }

    public String getRfidcode() {
        return rfidcode;
    }

    public void setShelvesId(Long shelvesId) {
        this.shelvesId = shelvesId;
    }

    public Long getShelvesId() {
        return shelvesId;
    }

    public void setShelvesCode(String shelvesCode) {
        this.shelvesCode = shelvesCode;
    }

    public String getShelvesCode() {
        return shelvesCode;
    }

    public void setShelvesName(String shelvesName) {
        this.shelvesName = shelvesName;
    }

    public String getShelvesName() {
        return shelvesName;
    }

    public void setShelvesStatus(Long shelvesStatus) {
        this.shelvesStatus = shelvesStatus;
    }

    public Long getShelvesStatus() {
        return shelvesStatus;
    }

    public void setShelvesLayerGrid(String shelvesLayerGrid) {
        this.shelvesLayerGrid = shelvesLayerGrid;
    }

    public String getShelvesLayerGrid() {
        return shelvesLayerGrid;
    }

    public void setShelvesLayerGridName(String shelvesLayerGridName) {
        this.shelvesLayerGridName = shelvesLayerGridName;
    }

    public String getShelvesLayerGridName() {
        return shelvesLayerGridName;
    }

    public void setIsRenew(Integer isRenew) {
        this.isRenew = isRenew;
    }

    public Integer getIsRenew() {
        return isRenew;
    }

    public void setBorrowUser(String borrowUser) {
        this.borrowUser = borrowUser;
    }

    public String getBorrowUser() {
        return borrowUser;
    }

    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone;
    }

    public String getUserPhone() {
        return userPhone;
    }

    public void setPlanBorrowDate(Date planBorrowDate) {
        this.planBorrowDate = planBorrowDate;
    }

    public Date getPlanBorrowDate() {
        return planBorrowDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("archiveId", getArchiveId())
                .append("familyId", getFamilyId())
                .append("boxId", getBoxId())
                .append("dossierId", getDossierId())
                .append("catalogId", getCatalogId())
                .append("storehouseId", getStorehouseId())
                .append("archiveCode", getArchiveCode())
                .append("fileCode", getFileCode())
                .append("titleName", getTitleName())
                .append("pageNos", getPageNos())
                .append("year", getYear())
                .append("saveYear", getSaveYear())
                .append("secretLevel", getSecretLevel())
                .append("duty", getDuty())
                .append("matter", getMatter())
                .append("updateTime", getUpdateTime())
                .append("appraisal", getAppraisal())
                .append("borrowflag", getBorrowflag())
                .append("status", getStatus())
                .append("delflag", getDelflag())
                .append("fileName", getFileName())
                .append("pieceCode", getPieceCode())
                .append("addTime", getAddTime())
                .append("isUse", getIsUse())
                .append("rfidcode", getRfidcode())
                .append("shelvesId", getShelvesId())
                .append("shelvesCode", getShelvesCode())
                .append("shelvesName", getShelvesName())
                .append("shelvesStatus", getShelvesStatus())
                .append("shelvesLayerGrid", getShelvesLayerGrid())
                .append("shelvesLayerGridName", getShelvesLayerGridName())
                .append("isRenew", getIsRenew())
                .append("borrowUser", getBorrowUser())
                .append("userPhone", getUserPhone())
                .append("planBorrowDate", getPlanBorrowDate())
                .toString();
    }
}
